import { Sort } from "element-plus"
import { CSSProperties } from "vue"

export default interface TableElement {
    height?: string | number
    maxHeight?: string | number
    stripe?: boolean
    border?: boolean
    size?: '' | 'large' | 'default' | 'small'
    fit?: boolean
    showHeader?: boolean
    highlightCurrentRow?: boolean
    currentRowKey?: string | number
    rowClassName?: ((data: { row: any, rowIndex: number }) => string) | string
    cellClassName?: ((data: { row: any, column: any, rowIndex: number, columnIndex: number }) => string) | string
    rowStyle?: ((data: { row: any, rowIndex: number }) => CSSProperties) | CSSProperties
    cellStyle?: ((data: { row: any, rowIndex: number }) => CSSProperties) | CSSProperties
    headerRowClassName?: ((data: { row: any, rowIndex: number }) => string) | string
    headerRowStyle?: ((data: { row: any, rowIndex: number }) => CSSProperties) | CSSProperties
    headerCellClassName?: ((data: { row: any, column: any, rowIndex: number, columnIndex: number }) => string) | string
    headerCellStyle: ((data: { row: any, rowIndex: number }) => CSSProperties) | CSSProperties
    rowKey?: ((row: any) => string) | string
    emptyText?: string
    defaultExpandAll?: boolean
    expandRowKeys?: any[]
    defaultSort?: Sort
    tooltipEffect?: 'dark' | 'light'
    showOverflowTooltip?: boolean
}